<!DOCTYPE html>
<html lang="en-us">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
<meta charset="UTF-8">
<title>Full cluster restart upgrade | Elasticsearch Guide [7.7] | Elastic</title>
<link rel="home" href="index.html" title="Elasticsearch Guide [7.7]">
<link rel="up" href="setup-upgrade.html" title="Upgrade Elasticsearch">
<link rel="prev" href="rolling-upgrades.html" title="Rolling upgrades">
<link rel="next" href="reindex-upgrade.html" title="Reindex before upgrading">
<meta name="DC.type" content="Learn/Docs/Elasticsearch/Reference/7.7">
<meta name="DC.subject" content="Elasticsearch">
<meta name="DC.identifier" content="7.7">
<meta name="robots" content="noindex,nofollow">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdn.optimizely.com/js/18132920325.js"></script>
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <meta name="apple-mobile-web-app-title" content="Elastic">
    <meta name="application-name" content="Elastic">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd">
    <meta name="yandex-verification" content="d8a47e95d0972434">
    <meta name="localized" content="true">
    <meta name="st:robots" content="follow,index">
    <meta property="og:image" content="https://www.elastic.co/static/images/elastic-logo-200.png">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
    <link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
    <link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="/guide/static/styles.css">
  </head>

  <!--© 2015-2021 Elasticsearch B.V. Copying, publishing and/or distributing without written permission is strictly prohibited.-->

  <body>
    <!-- Google Tag Manager -->
    <script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
    <!-- End Google Tag Manager -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-12395217-16');
    </script>

    <!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->
    <script type="text/javascript">
      (function(){var g=function(e,h,f,g){
      this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
      this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
      this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
      this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}};
      this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
      try{(new g(100,"r","QSI_S_ZN_emkP0oSe9Qrn7kF","https://znemkp0ose9qrn7kf-elastic.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_emkP0oSe9Qrn7kF")).start()}catch(i){}})();
    </script><div id="ZN_emkP0oSe9Qrn7kF"><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>
    <!--END WEBSITE FEEDBACK SNIPPET-->

    <div id="elastic-nav" style="display:none;"></div>
    <script src="https://www.elastic.co/elastic-nav.js"></script>

    <!-- Subnav -->
    <div>
      <div>
        <div class="tertiary-nav d-none d-md-block">
          <div class="container">
            <div class="p-t-b-15 d-flex justify-content-between nav-container">
              <div class="breadcrum-wrapper"><span><a href="/guide/" style="font-size: 14px; font-weight: 600; color: #000;">Docs</a></span></div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="main-container">
      <section id="content">
        <div class="content-wrapper">

          <section id="guide" lang="en">
            <div class="container">
              <div class="row">
                <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                  <!-- start body -->
                  <div class="page_header">
<strong>IMPORTANT</strong>: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="setup-upgrade.html">Upgrade Elasticsearch</a></span>
»
<span class="breadcrumb-node">Full cluster restart upgrade</span>
</div>
<div class="navheader">
<span class="prev">
<a href="rolling-upgrades.html">« Rolling upgrades</a>
</span>
<span class="next">
<a href="reindex-upgrade.html">Reindex before upgrading »</a>
</span>
</div>
<div class="chapter">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="restart-upgrade"></a>Full cluster restart upgrade<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/upgrade/cluster_restart.asciidoc">edit</a>
</h2>
</div></div></div>
<p>To upgrade directly to Elasticsearch 7.7.1 from versions 6.0-6.7, you must shut down
all nodes in the cluster, upgrade each node to 7.7.1, and restart the cluster.</p>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>If you are running a version prior to 6.0,
<a href="/guide/en/elastic-stack/6.8/upgrading-elastic-stack.html" class="ulink" target="_top">upgrade to 6.8</a>
and reindex your old indices or bring up a new 7.7.1 cluster and
<a class="xref" href="reindex-upgrade-remote.html" title="Reindex from a remote cluster">reindex from remote</a>.</p>
</div>
</div>
<h3>
<a id="_preparing_to_upgrade_2"></a>Preparing to upgrade<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/upgrade/preparing_to_upgrade.asciidoc">edit</a>
</h3>
<p>It is important to prepare carefully before starting an upgrade. Once you have
started to upgrade your cluster to version 7.7.1 you must complete the
upgrade. As soon as the cluster contains nodes of version 7.7.1 it may make
changes to its internal state that cannot be reverted. If you cannot complete
the upgrade then you should discard the partially-upgraded cluster, deploy an
empty cluster of the version before the upgrade, and restore its contents from
a snapshot.</p>
<p>Before you start to upgrade your cluster to version 7.7.1 you should do the
following.</p>
<div class="olist orderedlist">
<ol class="orderedlist">
<li class="listitem">
Check the <a class="xref" href="logging.html#deprecation-logging" title="Deprecation logging">deprecation log</a> to see if you are using any
deprecated features and update your code accordingly.
</li>
<li class="listitem">
Review the <a class="xref" href="breaking-changes.html" title="Breaking changes">breaking changes</a> and make any necessary
changes to your code and configuration for version 7.7.1.
</li>
<li class="listitem">
If you use any plugins, make sure there is a version of each plugin that is
compatible with Elasticsearch version 7.7.1.
</li>
<li class="listitem">
Test the upgrade in an isolated environment before upgrading your production
cluster.
</li>
<li class="listitem">
<a class="xref" href="modules-snapshots.html" title="Snapshot module">Back up your data by taking a snapshot!</a>
</li>
</ol>
</div>
<h3>
<a id="_upgrading_your_cluster_2"></a>Upgrading your cluster<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/upgrade/cluster_restart.asciidoc">edit</a>
</h3>
<p>To perform a full cluster restart upgrade to 7.7.1:</p>
<div class="olist orderedlist">
<ol class="orderedlist">
<li class="listitem">
<p><span class="strong strong"><strong>Disable shard allocation.</strong></span></p>
<p>When you shut down a node, the allocation process waits for
<code class="literal">index.unassigned.node_left.delayed_timeout</code> (by default, one minute) before
starting to replicate the shards on that node to other nodes in the cluster,
which can involve a lot of I/O.  Since the node is shortly going to be
restarted, this I/O is unnecessary. You can avoid racing the clock by
<a class="xref" href="modules-cluster.html#cluster-routing-allocation-enable">disabling allocation</a> of replicas before
shutting down the node:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.enable": "primaries"
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/68.console"></div>
</li>
<li class="listitem">
<p><span class="strong strong"><strong>Stop indexing and perform a synced flush.</strong></span></p>
<p>Performing a <a class="xref" href="indices-synced-flush-api.html" title="Synced flush API">synced-flush</a> speeds up shard
recovery.</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST _flush/synced</pre>
</div>
<div class="console_widget" data-snippet="snippets/69.console"></div>
<p>When you perform a synced flush, check the response to make sure there are
no failures. Synced flush operations that fail due to pending indexing
operations are listed in the response body, although the request itself
still returns a 200 OK status. If there are failures, reissue the request.</p>
<p>Note that synced flush is deprecated and will be removed in 8.0. A flush
has the same effect as a synced flush on Elasticsearch 7.6 or later.</p>
</li>
<li class="listitem">
<p><span class="strong strong"><strong>Temporarily stop the tasks associated with active machine learning jobs and datafeeds.</strong></span> (Optional)</p>
<p>If your machine learning indices were created before 6.x, you must
<a class="xref" href="reindex-upgrade.html" title="Reindex before upgrading">reindex the indices</a>.</p>
<p>If your machine learning indices were created in 6.x, you can:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
Leave your machine learning jobs running during the upgrade. When you shut down a
machine learning node, its jobs automatically move to another node and restore the model
states. This option enables your jobs to continue running during the upgrade but
it puts increased load on the cluster.
</li>
<li class="listitem">
<p>Temporarily halt the tasks associated with your machine learning jobs and datafeeds and
prevent new jobs from opening by using the
<a class="xref" href="ml-set-upgrade-mode.html" title="Set upgrade mode API">set upgrade mode API</a>:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST _ml/set_upgrade_mode?enabled=true</pre>
</div>
<div class="console_widget" data-snippet="snippets/70.console"></div>
<p>When you disable upgrade mode, the jobs resume using the last model
state that was automatically saved. This option avoids the overhead of managing
active jobs during the upgrade and is faster than explicitly stopping datafeeds
and closing jobs.</p>
</li>
<li class="listitem">
<a href="/guide/en/machine-learning/7.7/stopping-ml.html" class="ulink" target="_top">Stop all datafeeds and close all jobs</a>. This option
saves the model state at the time of closure. When you reopen the jobs after the
upgrade, they use the exact same model. However, saving the latest model state
takes longer than using upgrade mode, especially if you have a lot of jobs or
jobs with large model states.
</li>
</ul>
</div>
</li>
<li class="listitem">
<p><span class="strong strong"><strong>Shutdown all nodes.</strong></span></p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>If you are running Elasticsearch with <code class="literal">systemd</code>:</p>
<div class="pre_wrapper lang-sh">
<pre class="programlisting prettyprint lang-sh">sudo systemctl stop elasticsearch.service</pre>
</div>
</li>
<li class="listitem">
<p>If you are running Elasticsearch with SysV <code class="literal">init</code>:</p>
<div class="pre_wrapper lang-sh">
<pre class="programlisting prettyprint lang-sh">sudo -i service elasticsearch stop</pre>
</div>
</li>
<li class="listitem">
<p>If you are running Elasticsearch as a daemon:</p>
<div class="pre_wrapper lang-sh">
<pre class="programlisting prettyprint lang-sh">kill $(cat pid)</pre>
</div>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p><span class="strong strong"><strong>Upgrade all nodes.</strong></span></p>
<div class="important admon">
<div class="icon"></div>
<div class="admon_content">
<p>If you are upgrading from 6.2 or earlier and use X-Pack,
run <code class="literal">bin/elasticsearch-plugin remove x-pack</code> to remove the X-Pack plugin before
you upgrade. The X-Pack functionality is now included in the default distribution
and is no longer installed separately. The node won’t start after upgrade if
the X-Pack plugin is present. You will need to downgrade, remove the plugin,
and reapply the upgrade.</p>
</div>
</div>
<p>To upgrade using a <a class="xref" href="deb.html" title="Install Elasticsearch with Debian Package">Debian</a> or <a class="xref" href="rpm.html" title="Install Elasticsearch with RPM">RPM</a> package:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
Use <code class="literal">rpm</code> or <code class="literal">dpkg</code> to install the new package.  All files are
installed in the appropriate location for the operating system
and Elasticsearch config files are not overwritten.
</li>
</ul>
</div>
<p>To upgrade using a zip or compressed tarball:</p>
<div class="olist orderedlist">
<ol class="orderedlist">
<li class="listitem">
Extract the zip or tarball to a <em>new</em> directory. This is critical if you
are not using external <code class="literal">config</code> and <code class="literal">data</code> directories.
</li>
<li class="listitem">
Set the <code class="literal">ES_PATH_CONF</code> environment variable to specify the location of
your external <code class="literal">config</code> directory and <code class="literal">jvm.options</code> file. If you are not
using an external <code class="literal">config</code> directory, copy your old configuration
over to the new installation.
</li>
<li class="listitem">
<p>Set <code class="literal">path.data</code> in <code class="literal">config/elasticsearch.yml</code> to point to your external
data directory. If you are not using an external <code class="literal">data</code> directory, copy
your old data directory over to the new installation.<br></p>
<div class="important admon">
<div class="icon"></div>
<div class="admon_content">
<p>If you use monitoring features, re-use the data directory when you upgrade
Elasticsearch. Monitoring identifies unique Elasticsearch nodes by using the persistent UUID, which
is stored in the data directory.</p>
</div>
</div>
</li>
<li class="listitem">
Set <code class="literal">path.logs</code> in <code class="literal">config/elasticsearch.yml</code> to point to the location
where you want to store your logs. If you do not specify this setting,
logs are stored in the directory you extracted the archive to.
</li>
</ol>
</div>
<div class="tip admon">
<div class="icon"></div>
<div class="admon_content">
<p>When you extract the zip or tarball packages, the <code class="literal">elasticsearch-n.n.n</code>
directory contains the Elasticsearch <code class="literal">config</code>, <code class="literal">data</code>, and <code class="literal">logs</code> directories.</p>
<p>We recommend moving these directories out of the Elasticsearch directory
so that there is no chance of deleting them when you upgrade Elasticsearch.
To specify the new locations, use the <code class="literal">ES_PATH_CONF</code> environment
variable and the <code class="literal">path.data</code> and <code class="literal">path.logs</code> settings. For more information,
see <a class="xref" href="important-settings.html" title="Important Elasticsearch configuration">Important Elasticsearch configuration</a>.</p>
<p>The <a class="xref" href="deb.html" title="Install Elasticsearch with Debian Package">Debian</a> and <a class="xref" href="rpm.html" title="Install Elasticsearch with RPM">RPM</a> packages place these directories in the
appropriate place for each operating system. In production, we recommend
installing using the deb or rpm package.</p>
</div>
</div>
</li>
</ol>
</div>
<p>If upgrading from a 6.x cluster, you must also
<a class="xref" href="modules-discovery-bootstrap-cluster.html" title="Bootstrapping a cluster">configure cluster bootstrapping</a> by
setting the <a class="xref" href="discovery-settings.html#initial_master_nodes" title="cluster.initial_master_nodes"><code class="literal">cluster.initial_master_nodes</code> setting</a> on
the master-eligible nodes.</p>
<div class="olist orderedlist">
<ol class="orderedlist">
<li class="listitem">
<p><span class="strong strong"><strong>Upgrade any plugins.</strong></span></p>
<p>Use the <code class="literal">elasticsearch-plugin</code> script to install the upgraded version of each
installed Elasticsearch plugin. All plugins must be upgraded when you upgrade
a node.</p>
</li>
<li class="listitem">
If you use Elasticsearch security features to define realms, verify that your realm
settings are up-to-date. The format of realm settings changed in version 7.0, in
particular, the placement of the realm type changed. See
<a class="xref" href="security-settings.html#realm-settings" title="Realm settings">Realm settings</a>.
</li>
<li class="listitem">
<p><span class="strong strong"><strong>Start each upgraded node.</strong></span></p>
<p>If you have dedicated master nodes, start them first and wait for them to
form a cluster and elect a master before proceeding with your data nodes.
You can check progress by looking at the logs.</p>
<p>As soon as enough master-eligible nodes have discovered each other, they form a
cluster and elect a master. At that point, you can use
<a class="xref" href="cat-health.html" title="cat health API"><code class="literal">_cat/health</code></a> and <a class="xref" href="cat-nodes.html" title="cat nodes API"><code class="literal">_cat/nodes</code></a> to monitor nodes
joining the cluster:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET _cat/health

GET _cat/nodes</pre>
</div>
<div class="console_widget" data-snippet="snippets/71.console"></div>
<p>The <code class="literal">status</code> column returned by <code class="literal">_cat/health</code> shows the health of each node
in the cluster: <code class="literal">red</code>, <code class="literal">yellow</code>, or <code class="literal">green</code>.</p>
</li>
<li class="listitem">
<p><span class="strong strong"><strong>Wait for all nodes to join the cluster and report a status of yellow.</strong></span></p>
<p>When a node joins the cluster, it begins to recover any primary shards that
are stored locally. The <a class="xref" href="cat-health.html" title="cat health API"><code class="literal">_cat/health</code></a> API initially reports
a <code class="literal">status</code> of <code class="literal">red</code>, indicating that not all primary shards have been allocated.</p>
<p>Once a node recovers its local shards, the cluster <code class="literal">status</code> switches to <code class="literal">yellow</code>,
indicating that all primary shards have been recovered, but not all replica
shards are allocated. This is to be expected because you have not yet
reenabled allocation. Delaying the allocation of replicas until all nodes
are <code class="literal">yellow</code> allows the master to allocate replicas to nodes that
already have local shard copies.</p>
</li>
<li class="listitem">
<p><span class="strong strong"><strong>Reenable allocation.</strong></span></p>
<p>When all nodes have joined the cluster and recovered their primary shards,
reenable allocation by restoring <code class="literal">cluster.routing.allocation.enable</code> to its
default:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.enable": null
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/72.console"></div>
<p>Once allocation is reenabled, the cluster starts allocating replica shards to
the data nodes. At this point it is safe to resume indexing and searching,
but your cluster will recover more quickly if you can wait until all primary
and replica shards have been successfully allocated and the status of all nodes
is <code class="literal">green</code>.</p>
<p>You can monitor progress with the <a class="xref" href="cat-health.html" title="cat health API"><code class="literal">_cat/health</code></a> and
<a class="xref" href="cat-recovery.html" title="cat recovery API"><code class="literal">_cat/recovery</code></a> APIs:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET _cat/health

GET _cat/recovery</pre>
</div>
<div class="console_widget" data-snippet="snippets/73.console"></div>
</li>
<li class="listitem">
<p><span class="strong strong"><strong>Restart machine learning jobs.</strong></span></p>
<p>If you temporarily halted the tasks associated with your machine learning jobs,
use the <a class="xref" href="ml-set-upgrade-mode.html" title="Set upgrade mode API">set upgrade mode API</a> to return them to active
states:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST _ml/set_upgrade_mode?enabled=false</pre>
</div>
<div class="console_widget" data-snippet="snippets/74.console"></div>
<p>If you closed all machine learning jobs before the upgrade, open the jobs and start the
datafeeds from Kibana or with the <a class="xref" href="ml-open-job.html" title="Open anomaly detection jobs API">open jobs</a> and
<a class="xref" href="ml-start-datafeed.html" title="Start datafeeds API">start datafeed</a> APIs.</p>
</li>
</ol>
</div>
</div>
<div class="navfooter">
<span class="prev">
<a href="rolling-upgrades.html">« Rolling upgrades</a>
</span>
<span class="next">
<a href="reindex-upgrade.html">Reindex before upgrading »</a>
</span>
</div>
</div>

                  <!-- end body -->
                </div>
                <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                  <div id="rtpcontainer" style="display: block;">
                    <div class="mktg-promo">
                      <h3>Most Popular</h3>
                      <ul class="icons">
                        <li class="icon-elasticsearch-white"><a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&amp;elektra=docs&amp;storm=top-video">Get Started with Elasticsearch: Video</a></li>
                        <li class="icon-kibana-white"><a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&amp;elektra=docs&amp;storm=top-video">Intro to Kibana: Video</a></li>
                        <li class="icon-logstash-white"><a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&amp;elektra=docs&amp;storm=top-video">ELK for Logs &amp; Metrics: Video</a></li>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </section>

        </div>


<div id="elastic-footer"></div>
<script src="https://www.elastic.co/elastic-footer.js"></script>
<!-- Footer Section end-->

      </section>
    </div>

<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
  window.initial_state = {}</script>
  </body>
</html>
